Так меня задолбали постоянные траблы во время настройки линуксового сервера из консоли, что я решил все их записать. А вы прочитаете и решите, зря я жалуюсь, или нет. У меня Debian, к другим дистрибутивам это может не относится.
1. Если из putty вставлять в редактор midnight commander, тот автоматом пытается добавлять лишние пробелы в начале строки (т.н. autoindent) и форматирование летит к чёрту. Это можно отключить, но я с большим трудом нашёл, как вызвать опции редактора mc.
Ещё вроде бы можно это отключить с помощью удерживания shift, но похоже, что шифт перехватывает сам putty когда используешь shift+insert для вставки текста и до mc он не доходит.
2. Если записать просто в содержимое файла /etc/motd приветствие, которые выводится при входе в консоль, оно перезапишется при следующей перезагрузке. Я его больше часа рисовал, а теперь всё потерялось (бэкап ещё не успели наладить). Чтобы этого избежать, сделайте, чтобы симлинк /etc/motd указывал на ваш файл с текстом, а не на тот, что по умолчанию.
3. Если ошибёшься в каком-нибудь системном настроечном файле, сервер просто не загрузится. И всё тут. Я ошибся в /etc/network/interfaces. Естественно, все файлы имеют свой формат, ошибиться – проще простого. Как проверить валидность такого файла заранее, мне неизвестно.
4. Скопировал phpbb (уже настроенную). Не работает, но сообщений об ошибках не выводит. Опции не помогают. В чём дело – понять невозможно. Попытался установить заново, инсталляция показала – плагин php-mysql не стоит (сервер был свежий). Понятно, что отчасти я сам виноват, но блин можно же сообщения об ошибках нормальные выводить.
5. Поставил в php.ini опцию upload_max_filesize в один гигабайт, всё работает. Ну, думаю, чего мелочится – поставил в 4 и забыл. Выяснилось, что если стоит 4, то вообще перестаёт работать – не даёт закачать даже крошечные файлы. Это к вопросу “Ещё один повод ненавидеть php” (как и предыдущий пункт, впрочем).
6. В текущей версии дебиан (stable) пакеты очень старые, моно вообще древний, например, а nginx версии 6, при том, что 7 версия его считается stable, а 8 – beta.
Если подключить репозитории от версий testing/unstable, то поставить ничего становится невозможно – apt-get вечно ругается на зависимости. Единственное, что помогает – aptitude, который их сам выясняет и ставит как ему кажется разумно. Не знал бы – так бы и компилировал из исходников свежии версии дальше.
7. Про компилирование я вообще не говорю. Никогда ничего с первого раза не компилируется (мало-мальски сложное), надо ставить кучу всяких –dev пакетов, каких именно – угадать далеко не всегда легко. Часто сообщения об ошибках странные и запутанные. Например, при сборке mono у меня был пробел в имени папки – а ругалось на отсутствие какого-то файла внутри, причём далеко не сразу. Если берёте старую версию софта или просто старый софт, который давно не обновлялся – будьте уверены, на новой версии компилятора gcc вам ничего не светит – будете до посинения исходник ковырять (пытался скомпилить SETedit, плюнул).
В целом – разница с Windows разительная. Тут обычно так: нашёл софт (пиратский), скачал с торрентов, установил и пользуешься, тыкая мышкой.
Минусы тоже известны: софт платный и не всегда ломается, порой его нельзя достаточно гибко настроить, и вообще не всегда есть для разных хитрых фич.